Programmable logic controllers are used to control a wide variety of industrial processes and machines. Typically, a PLC comprises a processing module (the “processor”) which is connected to one or more input/output (I/O) modules via a system bus. The I/O modules provide input and output ports or lines which are directly connected to external machinery or sensors. In a typical PLC system the processor continuously polls the input bits of the 110 modules, processes the input data and sets output bits of the I/O modules accordingly.
The system bus which allows the processor and the I/O modules to communicate with one another consists of a number of lines or electrical paths. These lines carry data signals between the processor and the I/O modules, and enable the processor to select a particular I/o module when the processor needs to establish communications with the I/O module. The bus may also provide power, reset and ground lines to the I/O modules.
One example of a PLC system is the FLEXLOGIC™ system marketed by Rockwell Automation of Milwaukee, Wis. The system bus in this PLC system includes:                two lines (DIN and DOUT) for the bidirectional transmission of serial data;        two lines (CLK HIGH and CLK LOW) for carrying a differential clock signal generated by the processor;        eight (8) I/O module select signals;        one line (RESET) which functions as a system reset signal;        one line (PWR) for supplying power generated by a power supply on the processor to various I/O modules; and        one line (GND) which connects the processor and the I/O modules to a common ground point.        
In a typical PLC system, including the FLEXLOGIC™ system mentioned above, each I/O module includes two connector ports (hereinafter “bus” ports) that allow the module to plug into adjacent preceding and receding I/O modules in daisy chain fashion. The two bus ports in each I/O module are internally connected in order to provide a contiguous system bus across the chain of I/O modules. The processor also includes a bus port in order to allow the first I/O module in the chain (which can be any I/O module since the bus ports are typically identical aside from their polarity) to directly plug into the processor.
Mechanically, the processor and the I/O modules may be mounted onto a rail which in turn may be mounted onto a wall or some other such support structure. The chain of I/O modules which directly plugs into the processor may be referred to as the “local rail”. The local rail may be physically split into two (or potentially more) units or parts through the use of a multi-wired cable. The cable essentially forms an extension of the system bus in order to interconnect the bus ports of spaced apart, but logically adjacent, I/O modules. This allows the system components to be mounted onto two physical rails and hence occupy a smaller horizontal footprint, thereby providing installation flexibility.
The maximum number of I/O modules in the local rail is typically limited due to various constraints such as the number of I/O module select lines provided by the system bus and electrical noise. So, in the event the processor has the capacity to handle additional I/O modules, it may be desirable to connect another chain of I/O modules to the processor in addition to the local rail. This second chain of I/O may be referred to as the “remote rail”. In the FLEXLOGIC™ system, an adapter is required to connect the processor to the remote rail as discussed in greater detail below. This adapter has two bus ports. The first I/O module of the remote rail plugs into one adapter bus port. The second adapter bus port is used to connect the adapter to the processor through another multi-wired cable. Other I/O modules in the remote rail may be plugged into adjacent I/O modules through the bus ports on each I/O module. In addition, the remote rail may be split into two (or potentially more) units or parts through a multi-wired cable.
In the FLEXLOGIC™ system, the processor includes a power supply which provides power to the I/O modules on the local rail. This power supply generally does not have a sufficient power rating to drive more I/O modules than the maximum number permitted on the local rail. While it is possible to increase the output of the power supply on the processor, the extra cost would be borne by all customers, even those which have no need for a remote rail in their applications. For this reason the adapter has its own power supply which provides power to the I/O modules on the remote rail.
It should be noted from the foregoing that because the bus ports are identical, it is possible to connect cables between any two bus ports of a processor, an adapter, and I/O modules. As both a processor and an adapter have their own power supply, connecting these electronic components incorrectly may introduce inappropriate voltages or currents to the processor, the adapter, or the I/O modules. This is particularly problematic because the I/O modules are connected to a variety of external devices such as sensors or external machinery. Inappropriate connections may introduce false signals to the I/O modules and cause the sensors or machinery to operate erratically which could pose serious hazards or dangerous conditions.
In particular, a problem exists when a powered-up processor is connected to an unpowered adapter. In this case, the adapter will pass clock signals from the processor through to the I/O modules. Referring to FIG. 8, each I/O module is controlled by an ASIC 802 which has input clamp diodes 804 connected from an input signal (e.g., clock signals) to the positive power line 806 and ground line 808, as shown. The purpose of these clamp diodes is to provide input protection so that the input signal is limited to a pre-determined voltage range. However, when no power voltage is applied to the positive power line of an I/O module, the clock signal may “leak” to the positive power line through these clamp diodes. This may in effect “bring up” the I/O module because it will appear that power has been supplied over the power lines. Consequently, the I/O module may operate on or produce spurious and incoherent data which may cause equipment connected to the I/O module to operate erratically. In addition, the clamp diodes may be damaged because they are not rated for relatively large power line currents that may arise when the clock signals “bring up” the I/O modules. A similar problem arises when an unpowered processor is connected to a powered-up adapter.
In addition, as PLC systems typically use a positive voltage to represent an unasserted RESET line, a similar problem may arise when a powered-up processor or any I/O on the local rail thereof is connected to a second dead or unpowered PLC system. In this case, the RESET signal on the local rail which is driven by the processor may “leak” through the clamp diodes of the unpowered I/O modules to the positive power line thereof and may “bring up” I/o modules of the second PLC system. Here too, the input clamp diodes of these I/O modules may be damaged due to excessive current flow therethrough. A similar problem arises when a second, powered, PLC system is connected to the processor when it is in an unpowered state.
Usually, different cables and connection ports are used for different connections in order to prevent such miswirings from occurring. A cable can only be physically plugged into a mating connection port. Wrong connections are thus eliminated because they would entail plugging a cable into a connection port that does not physically match. This method requires the use of differently configured connection ports and cables, thus increasing manufacturing, inventory- and maintenance costs.
To reduce these costs, it is desirable to use the same type of cable for the different types of connections in a PLC system. Using the same cable for different connections reduces manufacturing, inventory and maintenance costs. However, it also introduces the possibility of miswirings such as connecting two processors or two adapters together, or connecting a processor or an adapter to another PLC system that is powered down. In addition, as mentioned above, a problem exists when connecting a processor to an unpowered adapter, or when connecting an adapter to an unpowered processor. It is desirable to minimize any damage that may occur as a result of such invalid connections.